// 导入处理路径的 path 核心模块
const path = require('path');
const db = require('../db');
// 发布新文章的处理函数
exports.addart = (req, res) => {
    if (!req.file || req.file.fieldname !== 'cover_img') return res.cs('文章封面是必选参数！');
    const articleInfo = {
        // 标题、内容、状态、所属的分类Id
        ...req.body,
        // 文章封面在服务器端的存放路径
        cover_img: path.join('/uploads', req.file.filename),
        // 文章发布时间
        pub_date: new Date(),
        // 文章作者的Id
        author_id: req.user.id,
    };
    const sql = `insert into article set ?`;
    db.query(sql, articleInfo, (err, data) => {
        // 执行 SQL 语句失败
        if (err) return res.cs(err)
      
        // 执行 SQL 语句成功，但是影响行数不等于 1
        if (data.affectedRows !== 1) return res.cs('发布文章失败！')
      
        // 发布文章成功
        res.cs('发布文章成功', 0)
    })
};

exports.listart = (req, res) => {
    const selSql = 'select id,title,pub_date,state from article  where is_delete = 0 ';
    db.query(selSql, (err, data) => {
        if (err) return res.cs(err);
        if (data.length === 0) return res.cs('查询失败');
        res.send({
            status: 0,
            message: '获取文章列表成功',
            data
        })
    })
    
};

exports.delart = (req, res) => {
    const delSql = 'update article set is_delete = 1 where Id = ?';
    console.log(req.params.id);
    db.query(delSql, req.params.id, (err, data) => {
        if (err) return res.cs(err);
        if (data.affectedRows === 0) res.cs('删除失败');
        res.cs('删除成功', 0);
    })
};

exports.selart = (req, res) => {
    const selSql = 'select * from article where Id = ?';
    db.query(selSql, req.params.id, (err, data) => {
        if (err) return res.cs(err);
        if (data.affectedRows === 0) res.cs('查询失败');
        res.send({
            status: 0,
            message: '获取文章成功！',
            data: data[0]
        })
    })
};

exports.editart = (req, res) => {
    if (!req.file || req.file.fieldname !== 'cover_img') return res.cs('文章封面是必选参数！');
    const articleInfo = {
        // 标题、内容、状态、所属的分类Id
        ...req.body,
        // 文章封面在服务器端的存放路径
        cover_img: path.join('/uploads', req.file.filename),
        // 文章发布时间
        pub_date: new Date(),
        // 文章作者的Id
        author_id: req.user.id,
    };
    const inSql = 'insert into article set ?';
    db.query(inSql, articleInfo, (err, data) => {
        // 执行 SQL 语句失败
        if (err) return res.cs(err)
      
        // 执行 SQL 语句成功，但是影响行数不等于 1
        if (data.affectedRows !== 1) return res.cs('更新文章失败！')
      
        // 发布文章成功
        res.cs('更新文章成功', 0)
    })
}